#ifndef __IIOFILE_H__
#define __IIOFILE_H__

#include "CTypes.h"

typedef struct SFileData
{
	stringc CompleteName;
	stringc FileNameOnly;
	stringc DirOnly;
	u32 Size;
	bool IsDirectory;
	bool IsLoaded;
	u32 PointerToFile;
} SFileData;

typedef struct FindDataStrc
{
	stringc Name;
	u32 Attrib;
	u32 TimeCreate;
	u32 TimeAccess;
	u32 TimeWrite;
	u32 Size;
	u32 PointerToFile;
}FindDataStrc;

class IIOFile
{
public:
	SFileData fd;
public:
	IIOFile()				{}
	virtual ~IIOFile()		{}

	virtual u32 CopyFromFileToMemory(u32 Size)						= 0;
	virtual u8 *GetBuffer()									        = 0;
	virtual bool LoadEntireFile()									    = 0;

	virtual IIOFile *GetFileByIndex(u32 Index)						    = 0;
	virtual u32 GetNumElements()									= 0;

	virtual IIOFile *CreateBinaryFile(stringc Name)					    = 0;
	virtual u32 WriteBinary(void *Buffer,u32 Size)					= 0;
	virtual bool CloseFile()										    = 0;
};

#endif
